home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / AECUR100.ARJ / PCKEYBD.H < prev    next >
C/C++ Source or Header  |  1990-03-08  |  3KB  |  119 lines

  1. /**********************************************************************
  2.  * 
  3.  * pckeybd.h
  4.  * 
  5.  * Copyright (c) 1988,89,90 J. Alan Eldridge
  6.  * 
  7.  * PC key defs for new kbd mapping scheme
  8.  * 
  9.  * WARNING: CHARACTERS ARE INTS, NOT CHARS!
  10.  * 
  11.  *********************************************************************/
  12.  
  13. #ifndef __PCKEYBD__
  14. #define __PCKEYBD__
  15.  
  16. /* null character */
  17.  
  18. #define K_NULL      0
  19.  
  20. /* common keys */
  21.  
  22. #define K_ESC       27
  23. #define K_TAB       '\t'
  24. #define K_NL        '\n'
  25. #define K_CR        '\r'
  26. #define K_BACK      '\b'
  27. #define K_SPACE     ' '
  28.  
  29. /* control keys */
  30.  
  31. #define _K_CTL(c)   ((c) - '@')
  32.  
  33. #define K_CTL_A     _K_CTL('A')
  34. #define K_CTL_B     _K_CTL('B')
  35. #define K_CTL_C     _K_CTL('C')
  36. #define K_CTL_D     _K_CTL('D')
  37. #define K_CTL_E     _K_CTL('E')
  38. #define K_CTL_F     _K_CTL('F')
  39. #define K_CTL_G     _K_CTL('G')
  40. #define K_CTL_H     _K_CTL('H')
  41. #define K_CTL_I     _K_CTL('I')
  42. #define K_CTL_J     _K_CTL('J')
  43. #define K_CTL_K     _K_CTL('K')
  44. #define K_CTL_L     _K_CTL('L')
  45. #define K_CTL_M     _K_CTL('M')
  46. #define K_CTL_N     _K_CTL('N')
  47. #define K_CTL_O     _K_CTL('O')
  48. #define K_CTL_P     _K_CTL('P')
  49. #define K_CTL_Q     _K_CTL('Q')
  50. #define K_CTL_R     _K_CTL('R')
  51. #define K_CTL_S     _K_CTL('S')
  52. #define K_CTL_T     _K_CTL('T')
  53. #define K_CTL_U     _K_CTL('U')
  54. #define K_CTL_V     _K_CTL('V')
  55. #define K_CTL_W     _K_CTL('W')
  56. #define K_CTL_X     _K_CTL('X')
  57. #define K_CTL_Y     _K_CTL('Y')
  58. #define K_CTL_Z     _K_CTL('Z')
  59.  
  60. #define K_CTL_BKSLASH   _K_CTL('\\')
  61.  
  62. /* modifier bits (in high byte) */
  63.  
  64. #define K_EXT       0x0100
  65. #define K_ALT       0x0200 
  66. #define K_CTL       0x0400
  67. #define K_SHIFT     0x0800
  68. #define K_USER      0x1000
  69.  
  70. /* shift tab key (backtab) */
  71.  
  72. #define K_BACKTAB   (K_TAB | K_EXT | K_SHIFT)
  73.  
  74. /* function keys */
  75.  
  76. #define K_F1        (130 | K_EXT)
  77. #define K_F2        ((K_F1) + 1)
  78. #define K_F3        ((K_F1) + 2)
  79. #define K_F4        ((K_F1) + 3)
  80. #define K_F5        ((K_F1) + 4)
  81. #define K_F6        ((K_F1) + 5)
  82. #define K_F7        ((K_F1) + 6)
  83. #define K_F8        ((K_F1) + 7)
  84. #define K_F9        ((K_F1) + 8)
  85. #define K_F10       ((K_F1) + 9)
  86. #define K_F11       ((K_F1) + 10)
  87. #define K_F12       ((K_F1) + 11)
  88.  
  89. /* cursor movement keys */
  90.  
  91. #define K_HOME      (150 | K_EXT)
  92. #define K_UP        (151 | K_EXT)
  93. #define K_PGUP      (152 | K_EXT)
  94. #define K_LEFT      (153 | K_EXT)
  95. #define K_RIGHT     (154 | K_EXT)
  96. #define K_END       (155 | K_EXT)
  97. #define K_DOWN      (156 | K_EXT)
  98. #define K_PGDN      (157 | K_EXT)
  99.  
  100. /* insert and delete */
  101.  
  102. #define K_INS       (158 | K_EXT)
  103. #define K_DEL       (159 | K_EXT)
  104.  
  105. /* print screen key */
  106.  
  107. #define K_PRTSC     (160 | K_EXT)
  108.  
  109. /* unknown key */
  110.  
  111. #define K_UNKNOWN   (255 | K_EXT)
  112.  
  113. /* impossible value */
  114.  
  115. #define K_ILLEGAL   -1
  116.  
  117. #endif  /* __PCKEYBD__ */
  118.  
  119.